package com.zrrd.stream;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @author WanJl
 * @version 1.0
 * @title StreamDemo05
 * @description 函数式编程-收集方法
 * @create 2024/6/16
 */
public class StreamDemo05 {
    public static void main(String[] args) {
        //Collection体系的集合可以使用默认的方法stream()生成流
        ArrayList<String> list = new ArrayList<>();
        list.add("张三丰");
        list.add("张无忌");
        list.add("张翠山");
        list.add("王二麻子");
        list.add("张良");
        list.add("谢广坤");

        //起始方法 集合对象.stream()
        Stream<String> listStream = list.stream();
        //中间方法 stream流对象.中间方法()
        List<String> list1 = listStream
                .filter(s -> s.length() >= 3)    //过滤集合中元素长度大于3的
                .filter(s -> s.startsWith("张"))//过滤集合中元素第一个字符为张的
                //终结方法 stream流对象.终结方法()
                //.count();//获取流中元素数
                //收集方法 把流里面的元素收集到集合中
                //终结方法 stream流对象.终结方法()
                //.count();//获取流中元素数
                //收集方法 把流里面的元素收集到集合中
                .collect(Collectors.toList());

        Set s=list1.stream().collect(Collectors.toSet());

        list1.stream().collect(Collectors.toMap(
                k->k.split(",")[0],//指定键
                v->Integer.parseInt(v)//指定值
        ));
    }
}
